/*
* GaussianBGModel.h
* GaussianBGModel Class
*
* author : T. D. Gamage
*/

#pragma once
#include <string>
#include <cv.h>
#include <highgui.h>
#include "Frame.h"
using namespace std;

class GaussianBGModel
{
private: 
    Frame* currentFrame;
    CvBGStatModel* bg_model;
   // GaussianBGModel* codeb;
public:
    GaussianBGModel(void);
    void createGaussianBGModel(IplImage* frameImage);
    void updateBGStatModel(IplImage* frameImage,int update_bg_model);
    IplImage* getBackGround();
    IplImage* getForeGround();

    /*int update_codebook(uchar* p,codeBook& c,unsigned* cbBounds,int numChannels);
    int clear_stale_entries(codeBook &c);
    uchar background_diff(uchar* p,codeBook& c,int numChannels,int* minMod,int* maxMod);
    void find_connected_components(IplImage* mask,int poly1_hull0 = 1,float perimScale = 4,int* num = NULL,CvRect* bbs = NULL,CvPoint* centers = NULL);*/

};